package team.seekers.catering.entity.dataobject;

import com.baomidou.mybatisplus.annotation.*;

import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import team.seekers.catering.common.enums.FoodTypeEnum;

/**
 * <p>
 * 食物表
 * </p>
 *
 * @author hbc
 * @since 2022-02-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Food对象", description="食物表")
public class Food implements Serializable {

    private static final long serialVersionUID = 1L;

      @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    @ApiModelProperty(value = "食物名称表")
    private String name;

    @ApiModelProperty(value = "食物种类（面向不同人群）")
    @JsonValue
    private FoodTypeEnum type;

    @ApiModelProperty(value = "是否是今日推荐")
    private Integer isToday;

    @ApiModelProperty(value = "食物样图")
    private String picture;

    @ApiModelProperty(value = "食谱描述")
    private String description;

    @ApiModelProperty(value = "食物成本")
    private BigDecimal price;

    @ApiModelProperty(value = "食物总质量")
    private Integer amount;


    @ApiModelProperty(value = "食谱组成")
    private byte[] content;

    @ApiModelProperty(value = "食物热量")
    private Integer kal;

    @ApiModelProperty(value = "蛋白质供能比")
    private BigDecimal proEr;

    @ApiModelProperty(value = "脂肪供能比")
    private BigDecimal fatEr;

    @ApiModelProperty(value = "碳水供能比")
    private BigDecimal choEr;

    @ApiModelProperty(value = "饱腹感指数")
    private BigDecimal satietyIndex;

    @ApiModelProperty(value = "营养饱和度")
    private BigDecimal nfs;

    @ApiModelProperty(value = "能量密度")
    private BigDecimal ed;

    @ApiModelProperty(value = "营养素密度")
    private byte[] nd;

    @ApiModelProperty(value = "营养参考值")
    private byte[] nrv;


    @TableLogic
    private Integer isDeleted;

      @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;

      @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmtModified;


}
